1. Field of the Invention
The present invention relates to an apparatus and method for controlling write access to a group of storage elements.
2. Background of the Invention
Many data processing systems include groups of storage elements for storing data for use by components within the data processing system. The data stored within such groups of storage elements is typically not static, and instead data can be written into storage elements and read from storage elements in response to access requests initiated by certain components within the data processing system.
One example of such a group of storage elements is a register file (also sometimes referred to as a register bank), where each of the storage elements takes the form of a register used to store data operated on by processing circuitry of the data processing system. For example, such register files are found in processor cores, providing working registers for use by the processor core when performing data processing operations. Another example of a group of storage elements is a group of control registers used to store control data used to control operation of an associated device. Such control registers may be provided for a number of components within the data processing system, for example a processor core, a peripheral device such as a Universal Asynchronous Receiver Transmitter (UART) device, etc.
Further, the groups of storage elements will not always be groups of registers. For example, storage structures such as the Translation Look-aside Buffers (TLBs) (often there will be a micro TLB and a main TLB) provided within a memory management unit (MMU) will typically provide a plurality of storage entries that can be considered to form a plurality of storage elements. Similarly, branch prediction units used to predict the outcome of branch operations also include storage structures such as branch history buffers (BHBs) and branch target buffers (BTBs) which can also be considered to comprise a plurality of storage elements.
Individual storage elements within such a group of storage elements are typically accessed in response to an access request specifying an address of the particular storage element in the group to be accessed. When the access request is a write access request requiring a write operation to be performed in the addressed storage element, the current contents of the addressed storage element will be overwritten with new write data passed to that storage element. To avoid any unintentional writing of storage elements, it is typical to provide write enable circuitry in association with the group of storage elements, which is responsible for detecting when an access request is a write access request, and only issuing a write control signal to an addressed storage element if it is detected that the access request is a write access request. Only in the presence of such a write control signal will the addressed storage element cause a write operation to occur in order to update its content.
In modern data processing systems, there is a general desire to make the individual components of the data processing system as small as possible. This enables the overall size to be reduced, thereby typically reducing the costs of manufacture, but also can give rise to power consumption reductions. Since write enable circuitry is typically provided in association with each group of storage elements, it would be desirable to provide a technique which enabled the size of write enable circuitry to be reduced.